1. Field of the Invention
The present invention relates to a computer-implemented divergence analysis method for a pointer-based program.
2. Description of the Related Art
In recent years, GPU-CPU heterogeneous architectures have been increasingly adopted in high performance computing due to their capabilities of providing high computational throughput.
Modern GPUs employ a single instruction multiple data (SIMD) execution model that groups parallel threads executing the same instruction in lock-step. The group is called a warp in the NVIDIA GPU terminology and a wavefront in the AMD GPU terminology. However, a divergence may occur when threads that execute in lock-step are forced to take different program paths because of branches in a code. When branch divergence occurs, some threads have to wait or be idle while other threads are executing, and the divergent branches will be executed serially on GPUs. It can be seen that divergence causes serious performance degradation of GPUs.
Although much research focuses on the divergence issue, the divergence analysis for pointer-based programs has not been thoroughly looked into.